// GNU (L)GPLv3+ here.

#include "MaxsiGameEngine.h"

BeginMaxsiNamespace

FLAGSL32 MaxsiEntity::GetCapabilities()
{
	return 0;
}

MaxsiError MaxsiEntity::CommitDrawData(size_t ThreadId)
{
	return MAXSI_ERROR_NOT_SUPPORTED;
}

MaxsiError MaxsiEntity::Draw()
{
	printf("Why are you drawing MaxsiEntity?\n");
	return MAXSI_ERROR_NOT_SUPPORTED;
}

MaxsiError MaxsiEntity::Update()
{
	return MAXSI_ERROR_SUCCESS;
}

MaxsiError MaxsiEntity::SimulatePhysics()
{
	return MAXSI_ERROR_NOT_SUPPORTED;
}

MaxsiPropPhysics::MaxsiPropPhysics()
{
	Location				=	Vec3(0, 0, 0);
	Velocity				=	Vec3(0, 0, 0);
	Acceleration			=	Vec3(0, 0, 0);
	Rotation				=	Vec3(0, 0, 0);
	RotationalVelocity		=	Vec3(0, 0, 0);
	RotationalAcceleration	=	Vec3(0, 0, 0);
	Mass					=	1.0f;
}

MaxsiPropPhysics::~MaxsiPropPhysics()
{
}

FLAGSL32 MaxsiPropPhysics::GetCapabilities()
{
	return ( MAXSI_ENTITY_SUPPORTS_DRAW | MAXSI_ENTITY_SUPPORTS_UPDATE | MAXSI_ENTITY_SUPPORTS_PHYSICS );
}

MaxsiError MaxsiPropPhysics::CommitDrawData(size_t ThreadId)
{
	return MAXSI_ERROR_SUCCESS;
}

MaxsiError MaxsiPropPhysics::Draw()
{
	return DrawBox(Mass, Location, Rotation);
}

MaxsiError MaxsiPropPhysics::Update()
{
	return MAXSI_ERROR_SUCCESS;
}

MaxsiError MaxsiPropPhysics::SimulatePhysics()
{
	return MAXSI_ERROR_SUCCESS;
}

EndMaxsiNamespace

